(計実) 第6回課題【模範解答】
◆模範解答(I):直接入力型:
◎input()関数で一月ずつ入力していくやりかたを示す.
code:weather-I.py
### part C-I
print("==============")
print("観測地点番号:999")
print("観測地点:札幌")
print("観測年:2000年")
print("単位:降水量(mm),気温(℃)")
print("--------------------")
### part B-I
kosuigokei = 0.0
kiongokei= 0.0
for i in range(12):
kosuigokei = kosuigokei + float(input(str(i+1) + '月の降水量 :'))
kiongokei = kiongokei + float(input(str(i+1) + '月の平均気温:'))
### part A
print("--------------------")
print('年降水量 :' + str(kosuigokei))
print('年平均気温:' + str(kiongokei/12))
print("==============")
◆模範解答(II):リスト+for型:
◎リストで数値をあらかじめ入れておく方法を示す.
code:weather-II.py
### 変数を初期入力
titen_num = "999"
titen_name = "札幌"
year = "2000"
# 1年は12ヶ月(後で利用)
month = 12
kei1 = "====================="
kei2 = "---------------------"
### part Bの変数もここに記述
kosui = 113.6, 94.0, 77.8, 56.8, 53.1, 46.8, 81.0, 123.8, 135.2, 108.7, 104.1, 111.7 kion = -3.6, -3.1, 0.6, 7.1, 12.4, 16.7, 20.5, 22.3, 18.1, 11.8, 4.9, -0.9 kosuigokei = 0.0
kiongokei= 0.0
### part C-II(f文で整形)
print(kei1)
print(f'{"観測地点番号: "}{titen_num}')
print(f'{"観測地点名: "}{titen_name}')
print(f'{"観測年: "}{year}{"年"}')
print("単位:降水量(mm),気温(℃)")
print(kei2)
### part B-II(リスト+for文)
# monthまでの範囲でforを回す
for i in range(month):
print(f'{i+1:2d}{"月の降水量 :"}{kosuii:>5.1f}') print(f'{i+1:2d}{"月の平均気温:"}{kioni:>5.1f}') print(kei2)
### part A
# 降水量合計を出力(fで整形)
print(f'{"年降水量 :":9}{kosuigokei:6.1f}')
# 平均値を算出して出力
print(f'{"年平均気温:":9}{kiongokei / month:6.1f}')
print(kei1)
模範解答(III):リスト+while型:
◎part B-II を while で書き換えたものを示す.
code:weather-B-III.py
### part B-III(リスト+while文)
# monthまでの範囲でwhileを回す
i = 0
while i < month:
print(f'{i+1:2d}{"月の降水量 :"}{kosuii:>5.1f}') print(f'{i+1:2d}{"月の平均気温:"}{kioni:>5.1f}') i += 1
print(kei2)
◎実行例(II): weather-B-IIIでも実行結果は同じ.
code:text
>> %Run weather-II.py
=====================
観測地点番号: 999
観測地点名: 札幌
観測年: 2000年
単位:降水量(mm),気温(℃)
---------------------
1月の降水量 :113.6
1月の平均気温: -3.6
2月の降水量 : 94.0
2月の平均気温: -3.1
3月の降水量 : 77.8
3月の平均気温: 0.6
4月の降水量 : 56.8
4月の平均気温: 7.1
5月の降水量 : 53.1
5月の平均気温: 12.4
6月の降水量 : 46.8
6月の平均気温: 16.7
7月の降水量 : 81.0
7月の平均気温: 20.5
8月の降水量 :123.8
8月の平均気温: 22.3
9月の降水量 :135.2
9月の平均気温: 18.1
10月の降水量 :108.7
10月の平均気温: 11.8
11月の降水量 :104.1
11月の平均気温: 4.9
12月の降水量 :111.7
12月の平均気温: -0.9
---------------------
年降水量 : 1106.6
年平均気温: 8.9
=====================
>>
◆表示を改良
ここからは参考.さらに改良を考えてみましょう.
◎part C-II を改良し,番号,地名,年を1行にして表示する.
code:weather-C-II.py
kei1 = "======================================"
kei2 = "--------------------------------------"
print(kei1)
print(f'観測地点/年:{titen_name}({titen_num:3d}) / {year}年')
print(f'{"単位:降水量(mm),気温(℃)":>30}') #右寄せ print(kei2)
◎part B-II を改良し,一月あたりを1行にして表示.
code:weather-B-IV.py
### part B-IV(リスト+for文)
# monthまでの範囲でforを回す
for i in range(month):
print(f'{i+1:2d}月の降水量:{kosuii:6.1f} 平均気温:{kioni:4.1f}') print(kei2)
◎part Aを,Bに合わせて1行にして表示.
code:weather-A-II.py
print(f'{"年降水量 :":7}{kosuigokei:6.1f} {"年平均気温:"}{kiongokei / month:4.1f}')
print(kei1)
◎上記のプログラムの出力結果:
code:text
>> %Run weather-iV.py
======================================
観測地点/年:札幌(999) / 2000年
単位:降水量(mm),気温(℃)
--------------------------------------
1月の降水量: 113.6 平均気温:-3.6
2月の降水量: 94.0 平均気温:-3.1
3月の降水量: 77.8 平均気温: 0.6
4月の降水量: 56.8 平均気温: 7.1
5月の降水量: 53.1 平均気温:12.4
6月の降水量: 46.8 平均気温:16.7
7月の降水量: 81.0 平均気温:20.5
8月の降水量: 123.8 平均気温:22.3
9月の降水量: 135.2 平均気温:18.1
10月の降水量: 108.7 平均気温:11.8
11月の降水量: 104.1 平均気温: 4.9
12月の降水量: 111.7 平均気温:-0.9
--------------------------------------
年降水量 :1106.6 年平均気温: 8.9
======================================
>>
けっこう見やすくなりましたね.よしよし.
◎参考:
以上.
2023/8/1